1. Builds SQL statements based on the objects vars and the builder methods.
2. acts as a datastore for a table row.
The core class is designed to be extended for each of your tables so that you put the
data logic inside the data classes.
included is a Generator to make your configuration files and your base classes.
nd";s:11:"maintainers";a:1:{i:0;a:4:{s:6:"handle";s:6:"alan_k";s:4:"name";s:12:"Alan Knowles";s:5:"email";s:17:"alan@akbkhome.com";s:4:"role";s:4:"lead";}}s:7:"version";s:5:"1.7.2";s:12:"release_date";s:10:"2004-08-28";s:15:"release_license";s:11:"PHP License";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:560:"Minor bug fix / Minor feature addition release
Bug Fixes:
#1835 - more fixes to ensure that joinAdd works correctly.
#2106 - Update with old object having no changes does not raise an error
#---- - fixed problem of call() code producing parse error on PHP5.0.1
#2205 - fixed case sensitivity of PHP5 call()
#---- - fixed undefined index in delete after a fetch()
Features Added:
#2086 - Support for buliding dataobjects for Views (use option build_view=1)
#2240 - factory() called on a dataobject returns a new instance of that object.";s:12:"release_deps";a:4:{i:1;a:3:{s:4:"type";s:3:"php";s:3:"rel";s:2:"ge";s:7:"version";s:3:"4.2";}i:2;a:4:{s:4:"type";s:3:"pkg";s:3:"rel";s:2:"ge";s:7:"version";s:3:"1.6";s:4:"name";s:2:"DB";}i:3;a:5:{s:4:"type";s:3:"pkg";s:3:"rel";s:2:"ge";s:7:"version";s:5:"0.1.1";s:8:"optional";s:3:"yes";s:4:"name";s:8:"Validate";}i:4;a:4:{s:4:"type";s:3:"pkg";s:3:"rel";s:2:"ge";s:7:"version";s:5:"1.4.3";s:4:"name";s:4:"Date";}}s:9:"changelog";a:33:{i:0;a:4:{s:7:"version";s:5:"1.7.1";s:12:"release_date";s:10:"2004-08-09";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:222:"Minor bug fix release
Bug Fixes:
#2088 - class_prefix may be left out.
#------ php4.2 compatibility should work as advertised in last realease
#------ Generator didnt have DB loaded due to lazy load changes.
";}i:1;a:4:{s:7:"version";s:5:"1.7.0";s:12:"release_date";s:10:"2004-06-03";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:1621:"Major bug fix release, Minor features added.
Bug Fixes:
#1559 - __FUNCTION__ remove, so dependancy on php 4.2 may still be valid.
#1595 - regex include/exclude working correctly (Thanks to Stephane Gully)
#1664 - configuration line links_{databasename} now available
#1726 - enable orderby and limit can be used with delete()
#1697 - prevent generator from adding an extra line created after definition.
#1704 - update only adds null when the column is not marked 'not null'
#1778 - toArray() returns a merge of defined table and actual results
#1828 - Generator will die, if tableinfo is not supported.
#1833 - links() now returns an empty array (no links) or null (no links.ini)
so it can be used generically with : $ar = (array) $do->links();
#1835 - getLinks, getLink etc. now use ->links(), so you can define your
own links() to return table links, rather than use links.ini files.
#1923 - removed all @ silencers, and replace with empty/isset.
";}i:3;a:4:{s:7:"version";s:5:"1.6.0";s:12:"release_date";s:10:"2004-04-24";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:1825:"Minor Feature Release and many bug fixes..
* DB_DataObject_Error added to enable testing for dataobject errors
* Date fixes - needs latest date package.
* Generator fails with clear message if backend doesnt support tableInfo
* added cidr, inet, macaddr for postgres
* new options to filter generation of classes
generator_include_regex = /foo_.*/i
generator_exclude_regex = /tmp_.*/i
* result column list is now stored for all queries (in the result object)
so toArray() allways relates to the query.
* php version correted in package file.
* getLinks called before other database call fixed.
* Updating without changing things, no longer raises a pear error,
it just returns 0 (eg. no rows affected)
* now Depends on 1.4 DB - escapeSimple is now used
* extra option to disable assumtions to use pear db's nextID
dont_use_pear_sequences = true
* DebugLevel($val) if $val is not an integer - it is assumed to be a callback.
* fixed clearing of data results after last fetch (reduces memory consumption
when doing many queries)
* strtolower any class name tests.
* count accepts 1 or 2 arguments
$countWhat or $whereAddonly, or $countWhat and $whereAddonly
eg. $countWhat = "distinct id"
eg. $countWhat = true (means $whereAdd = true)
* selectAdd() returns existing value, so you can modify it.
* most debugging & raiseError calls are dynamic, so you can overload them.
* numbers allowed in tablenames.
* ini filename uses database_{projectname} => {projectname}.ini so
database names are portable, and multiple projects are theoretically feasible.
* __clone is replaced with clone() for PHP5 compaitiblity.
* use PEAR::getStaticProperty("DB","options") for oracle portablity settings.
* null checked against not null spec.
And probably a few more - as it's been quite a while since the last release..
* Dependancy on Date added. (it is used by the setter/getters)
";}i:7;a:4:{s:7:"version";s:3:"1.5";s:12:"release_date";s:10:"2004-01-20";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:1561:"New Features / Fixes
* proxy and auto schema building
- you can use dataobjects wihout running create tables.
- schema is created on the fly if no schema file exists
- using config option proxy=full, a class is generated on the fly to
represent the tables.
* toValue and fromValue added as getter and setter providers
- they include date formating tools - eg.
$do->getBirthDay('%d/%m/%Y') will work with overload and PEAR::Date
to provide formated dates. (works with date/time and datetime)
- set*() will also call strtotime and PEAR::Date to try and read dates.\
setFrom will relay into fromValue() - hence auto fixing date entries
* make native key recognision a little better - changes ini file
format (key=N|K) - native or key. - BC protected... - ignores it
when it finds a number.. (Fixes bug #532)
* allow multiple updates on the same object - without adding lots
of id=.... on the end..
* transactions support works transparently by sending
";}i:14;a:4:{s:7:"version";s:3:"1.0";s:12:"release_date";s:10:"2003-07-16";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:1233:"- Gold 1.0 Release.. - final stable release in this series. Future versions
(eg. 1.1.*(dev)->1.2.*(release)) series will be generally API compatible,
however is likely to use MDB rather than DB.
- fix bug #23983 - argument checking on whereAdd, orderBy, limit and a few others
(Mike Carter)
- fix bug with cache clearing not working with staticGet and update/insert
- null comparison for $object->var = 'null' will generate IS NULL query
- null insert/update works when using 'null' as a value.
- getLinks returns true on success
- getLinks now has a formatter eg. '_%s' is default to allow user to define the
format of variables to assign child objects to.
- generator uses UNIQUE only if no primary/autoincrement type field is found.
- added support for $object->having('sum(value) > 10');
- fetch will remove some query lines (so if you want to see how the query was built
you will have to print_r() the object after find(), and before fetch(), or just use
debugLevel(1)
- overload calls from setFrom and toArray do method checks, as overload is still proving to
be a little unstable especially with Zend Encoder. (Note: if DataObjects causes crashes
, remove the overload code at the bottom of DataObjects.php)
";}i:15;a:4:{s:7:"version";s:4:"0.19";s:12:"release_date";s:10:"2003-05-22";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:1663:"- fix bug #23712 - deleting (and probably updating as well) an object while
being fetched. (Michael McCarthy for spotting this)
- fix generator overwriting code when file was edited in a Windows editor
(Robert Janeczek)
- validation will not produce errors on empty numeric data by default.
- overload extension enabled to relay setFrom and toArray calls to get*, set*
methods, which are predefined as
getXXX = returns $object->XXX
setXXX($V) = returns true (or an error string if you create your own)
(only affects php-4.3.2RC2 or later..)
- selectAs($dataobject,'prefix_%s') to help control the way join queries return
their data * doing selectAs() - clears the select and sets it to table.id as id ... etc.
existing behaviour (INNER Joins) is default (eg. no value)
$joinType can be:
INNER,LEFT,RIGHT = eg. INNER JOIN ... etc.
'' = just added with a , and the link conditions are added with a WHERE statement.
$joinAs can be used to name the table differently in the join eg.
SELECT .. FROM person INNER JOIN address as homeaddress ......
- setFrom has an extra optional parameter for formating: eg.
$object->setFrom($_POST,'prefix_%s') would map prefix_name to $object->name
the default is '%s' which is the same as the previous behaviour
- added option dont_die (default no) to ini file
default (no) means that DataObjects will emit a PEAR_ERROR_DIE on configuration and
programming errors
true or 1 means that you can write a PEAR::error handler to catch the errors and
display a nice it's not working message
";}i:16;a:4:{s:7:"version";s:4:"0.18";s:12:"release_date";s:10:"2003-05-17";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:647:"- add table prefix to autobuilt queries (assist in ambigous querys for joins)
(Daniel Von Fange)
- change update and delete to return the number of rows affected or false on failure
- various code tidy ups - standards etc. (Arnaud Limbourg)
- fix generator for postgres and mdb - use unique keys and look for 'nextval' as keys.
- fix no key insert bug (G Moxley Kempster)
- fix empty table bug in generator (Robert Janeczek)
- staticAutoloadTable(), now handles parse errors in included files alot cleaner
- added dependancies on PHP4.3, DB 1.3 and Validate (although Validate is optional)
- added table prefix to count query (Richard Wallace)
";}i:17;a:4:{s:7:"version";s:4:"0.17";s:12:"release_date";s:10:"2003-03-12";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:107:"- Usual post feature bug fix release
- fix loading of links.ini for joinAdd, getLinks etc. (Geoff Hopson)
";}i:18;a:4:{s:7:"version";s:4:"0.16";s:12:"release_date";s:10:"2003-03-06";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:754:"- replaced config storage - should improve performance
- removed production option (not required due to improved config storage)
- bugfix : added checks for is_array on ignore_sequence_keys (Hermen Heinen)
- add toArray($format) which supports sprintf to enable easy integration with
Quickforms etc. (Demian Turner)
- add optional dataobject as variable to update(), so you can update will
only create an update based on what has changed. (Geoff Hopson)
- add join condition to count() (Daniel Von Fange)
- modify limit() to work with postgresql and make it emit a fatal error if you
try this on databases that do not directly support limit queries. (Geoff Hopson)
* I'm open on better ideas for this - probably wrapping the find() select call
";}i:19;a:4:{s:7:"version";s:4:"0.15";s:12:"release_date";s:10:"2003-02-13";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:407:"- modified find(true), so that it calls fetch rather than fetchrow
so that overriding fetch will affect get() calls.
(probably depreciates fetchrow now .. shout if anyone is using it)
- added escape method as a quasi quote wrapper into pear::DB - useful for
building your own queries - eg. like requests.. (does not add quotes)
- fixed bug with delete not using primary key if it was set. (Ian Eure)
";}i:20;a:4:{s:7:"version";s:4:"0.14";s:12:"release_date";s:10:"2003-02-06";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:220:"- added get affected rows to update/insert/delete
they will return false if no data is affected and set
the Objects lastError value.
Note: databases that do not support affectedRows(), will always
return false.
";}i:21;a:4:{s:7:"version";s:4:"0.13";s:12:"release_date";s:10:"2003-01-23";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:82:"- bug fix release - debug_ignore_updates worked in reverse.. (Alexander Mazurov)
";}i:22;a:4:{s:7:"version";s:4:"0.12";s:12:"release_date";s:10:"2003-01-22";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:217:"- Usual post release bug fix.
- fixes *.links.ini incorrectly using *.links (Damian Turner)
- Adds the ability to get PEAR Connection and result objects
getDatabaseConnection() and getDatabaseResult() (jason rust)
";}i:23;a:4:{s:7:"version";s:4:"0.11";s:12:"release_date";s:10:"2003-01-21";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:478:"- changed connecition and result caching to use global private variable, rather
than getStaticProperty
- results objects are not stored on insert/update/delete (speed increase
on large inserts can be as much as 10x faster)
- bug fix - Checks that primary keys are integers (Anthony Juou)
- typo on No data returned warning
- unit tests in CVS
- new configuration option for whether to use insert id's and sequences.
- Generator no creates boolean bit (mitchell perilstein)
";}i:24;a:4:{s:7:"version";s:4:"0.10";s:12:"release_date";s:10:"2002-12-09";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:289:"- bug fix - Generator incorrectly set _database, causing generation of database.ini files to fail
- change addslashes to PEAR::DB::quote()
- generator now only replaces DB_DataObjects with extends variable if set,
you can use generator_rewrite_class to set what is a valid replacement.
";}i:25;a:4:{s:7:"version";s:3:"0.9";s:12:"release_date";s:10:"2002-12-06";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:47:"- bug fix release - dsn was not set correctly
";}i:26;a:4:{s:7:"version";s:3:"0.8";s:12:"release_date";s:10:"2002-09-21";s:13:"release_state";s:6:"stable";s:13:"release_notes";s:837:"- changed to stable status as it appears to be pretty stable now.
- update and insert now return FALSE on error conditions (Peter Gebauer)
which can be checked using === FALSE, and the error obtained using $object->_lastError
- delete will only use primary keys if they are set, otherwise it will use all object
variables to build the condition. (Daniel Ferreira)
- Added derivedHookFunctions(), and derivedHookVar() to enable extensions to generator to
make user defined methods. (Michael Lund Rasmussen)
- support for INT4, BPCHAR, TIMESTAMPTZ and postres Primary keys (Xavier)
- better PEAR CS complience (tabs and TRUE -> true), removed short open tags in generator (Thomas Volkmar Worm)
- experimental addJoin method (Stijn de Reede)
- Allow active options array (eg. dynamic changing of database config) (Sergey Lipnevich)
";}i:27;a:4:{s:7:"version";s:3:"0.6";s:12:"release_date";s:10:"2002-09-10";s:13:"release_state";s:4:"beta";s:13:"release_notes";s:64:"- bug fix release on insert (broke due to compatibility fixes)
";}i:28;a:4:{s:7:"version";s:3:"0.5";s:12:"release_date";s:10:"2002-09-07";s:13:"release_state";s:4:"beta";s:13:"release_notes";s:198:"- fixed database.links.ini file loading in wrong location (Jens Fischer)
- fixed type on extends (Jens Fischer)
- added __clone() support to pre- php5 classes
- added multiple linked table support
";}i:29;a:4:{s:7:"version";s:3:"0.4";s:12:"release_date";s:10:"2002-08-21";s:13:"release_state";s:4:"beta";s:13:"release_notes";s:51:"- Bug fix release - createTables used wrong argv
";}i:30;a:4:{s:7:"version";s:3:"0.3";s:12:"release_date";s:10:"2002-08-16";s:13:"release_state";s:4:"beta";s:13:"release_notes";s:46:"- Fixed Globals requirement in createTables,
";}i:31;a:4:{s:7:"version";s:3:"0.2";s:12:"release_date";s:10:"2002-07-12";s:13:"release_state";s:4:"beta";s:13:"release_notes";s:87:"Removed list method, First upload as pear package. - Documentation now in PEAR Manual